package com.cmyshare.design.strategyPattern;

/**
 * @version 1.0
 * @Author cmy
 * @Date 2024/1/27 15:16
 * @desc 策略模式测试类
 */
public class StrategyTest {
    public static void main(String[] args) {
        //实例化ConcreteStrategy具体策略类管理Context，加入具体策略类StrategyImplA
        Context ctx = new Context(new StrategyImplA());
        //执行具体策略类下doMethod方法
        ctx.doMethod();
        ctx.doMethod2();
        //实例化ConcreteStrategy具体策略类管理Context，加入具体策略类StrategyImplB
        ctx = new Context(new StrategyImplB());
        //执行具体策略类下doMethod方法
        ctx.doMethod();
        ctx.doMethod2();
        //实例化ConcreteStrategy具体策略类管理Context，加入具体策略类StrategyImplC
        ctx = new Context(new StrategyImplC());
        //执行具体策略类下doMethod方法
        ctx.doMethod();
        ctx.doMethod2();
    }
}
